package com.flyan.danmuhunter.bilibili.data;

import com.flyan.danmuhunter.common.model.Pair;
import lombok.Getter;
import lombok.ToString;

import java.util.HashMap;
import java.util.Map;

/**
 * 命令代码
 *
 * @author flyan
 * @version 1.0
 * @date 2022/6/7
 */
@Getter
@ToString
public class Cmd {

    public static final String CMD = "cmd";

    private final String cmdVal;
    private final CmdType cmdType;

    public Cmd(String cmdVal) {
        this.cmdVal = cmdVal;
        this.cmdType = CmdType.valueOf(cmdVal);
    }

    public static enum CmdType {

        /**
         * 收到弹幕
         */
        DANMU_MSG("收到弹幕"),

        /**
         * 有人送礼
         */
        SEND_GIFT("有人送礼"),

        /**
         * 有人进入直播
         */
        INTERACT_WORD("有人进入直播"),

        /**
         * 欢迎加入房间
         */
        WELCOME("欢迎加入房间"),

        /**
         * 欢迎房管加入房间
         */
        WELCOME_GUARD("欢迎房管加入房间"),

        /**
         * 系统消息
         */
        SYS_MSG("系统消息"),

        /**
         * 主播准备中
         */
        PREPARING("主播准备中"),

        /**
         * 直播开始
         */
        LIVE("直播开始"),

        /**
         * 许愿瓶？ 还不确定，但从名字上看应该是的
         */
        WISH_BOTTLE("许愿瓶"),

        /**
         * 观看人数改变
         */
        WATCHED_CHANGE("观看人数改变"),

        /**
         * 在线礼物榜单人数
         */
        ONLINE_RANK_COUNT("在线礼物榜单人数"),

        /**
         * 热门榜改变
         */
        HOT_RANK_CHANGED_V2("热门榜改变"),

        /**
         * 在线礼物榜单 TOP3 改变通知
         */
        ONLINE_RANK_TOP3("在线礼物榜单 TOP3 改变通知"),

        /**
         * 在线榜单
         * 数据中 rank_type 区分榜单
         *  - gold-rank 为礼物榜单(高能榜)
         */
        ONLINE_RANK_V2("在线榜单");

        @Getter
        private final String desc;

        CmdType(String desc) {
            this.desc = desc;
        }

    }
    

}
